6704b3c8e0fe9934c88f98a9f7a68717cfde8998,app/src/main/java/com/hotbitmapgg/ohmybilibili/module/video/VideoPlayerActivity.java,VideoPlayerActivity,initData,#,123

Before Change


        //�并视频和弹幕数�
        Observable.merge(loadVideo(), loadDanmaku())
                .last()
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Observer<Object>()
                {

                    @Override
                    public void onCompleted()
                    {

                        mPlayerView.start();
                        mDanmakuView.start();
                    }

                    @Override
                    public void onError(Throwable e)
                    {

                        startText = startText + "�失败】\n视频缓冲中...";
                        mPrepareText.setText(startText);
                        startText = startText + "�失败】\n" + e.getMessage();
                        mPrepareText.setText(startText);
                    }

                    @Override
                    public void onNext(Object o)
                    {

                    }
                });
    }

After Change


                .getHDVideoUrl(cid, 4, ConstantUtils.VIDEO_TYPE_MP4)
                .compose(bindToLifecycle())
                .map(videoInfo -> Uri.parse(videoInfo.getDurl().get(0).getUrl()))
                .observeOn(AndroidSchedulers.mainThread())
                .flatMap(new Func1<Uri,Observable<BaseDanmakuParser>>()
                {

                    @Override
                    public Observable<BaseDanmakuParser> call(Uri uri)
                    {

                        mPlayerView.setVideoURI(uri);
                        mPlayerView.setOnPreparedListener(mp -> {


                            mLoadingAnim.stop();
                            startText = startText + "�完�】\n视频缓冲中...";
                            mPrepareText.setText(startText);
                            mVideoPrepareLayout.setVisibility(View.GONE);
                        });

                        String url = "http://comment.bilibili.com/" + cid + ".xml";
                        return DanmakuDownloadUtil.downloadXML(url);
                    }
                })
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(baseDanmakuParser -> {

                    mDanmakuView.prepare(baseDanmakuParser, danmakuContext);
                    mDanmakuView.showFPS(false);
                    mDanmakuView.enableDanmakuDrawingCache(false);
                    mDanmakuView.setCallback(new DrawHandler.Callback()
                    {

                        @Override
                        public void prepared()
                        {

                            mDanmakuView.start();
                        }

                        @Override
                        public void updateTimer(DanmakuTimer danmakuTimer)
                        {

                        }

                        @Override
                        public void danmakuShown(BaseDanmaku danmaku)
                        {

                        }

                        @Override
                        public void drawingFinished()
                        {

                        }
                    });

                    mPlayerView.start();
                }, throwable -> {


                    startText = startText + "�失败】\n视频缓冲中...";
                    mPrepareText.setText(startText);
                    startText = startText + "�失败】\n" + throwable.getMessage();
                    mPrepareText.setText(startText);
                });
    }

    /**